<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>affine_trans_image_size [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_filters.html">过滤器</a> / <a href="toc_filters_geometrictransformations.html">Geometric Transformations</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">affine_trans_image_size</span><span data-if="c" style="display:none;">T_affine_trans_image_size</span><span data-if="cpp" style="display:none;">AffineTransImageSize</span><span data-if="dotnet" style="display:none;">AffineTransImageSize</span><span data-if="python" style="display:none;">affine_trans_image_size</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">affine_trans_image_size</span><span data-if="c" style="display:none;">T_affine_trans_image_size</span><span data-if="cpp" style="display:none;">AffineTransImageSize</span><span data-if="dotnet" style="display:none;">AffineTransImageSize</span><span data-if="python" style="display:none;">affine_trans_image_size</span></code> — Apply an arbitrary affine 2D transformation to an image and specify
the output image size.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>affine_trans_image_size</b>(<a href="#Image"><i>Image</i></a> : <a href="#ImageAffineTrans"><i>ImageAffineTrans</i></a> : <a href="#HomMat2D"><i>HomMat2D</i></a>, <a href="#Interpolation"><i>Interpolation</i></a>, <a href="#Width"><i>Width</i></a>, <a href="#Height"><i>Height</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_affine_trans_image_size</b>(const Hobject <a href="#Image"><i>Image</i></a>, Hobject* <a href="#ImageAffineTrans"><i>ImageAffineTrans</i></a>, const Htuple <a href="#HomMat2D"><i>HomMat2D</i></a>, const Htuple <a href="#Interpolation"><i>Interpolation</i></a>, const Htuple <a href="#Width"><i>Width</i></a>, const Htuple <a href="#Height"><i>Height</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>AffineTransImageSize</b>(const HObject&amp; <a href="#Image"><i>Image</i></a>, HObject* <a href="#ImageAffineTrans"><i>ImageAffineTrans</i></a>, const HTuple&amp; <a href="#HomMat2D"><i>HomMat2D</i></a>, const HTuple&amp; <a href="#Interpolation"><i>Interpolation</i></a>, const HTuple&amp; <a href="#Width"><i>Width</i></a>, const HTuple&amp; <a href="#Height"><i>Height</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>AffineTransImageSize</b>(const HHomMat2D&amp; <a href="#HomMat2D"><i>HomMat2D</i></a>, const HString&amp; <a href="#Interpolation"><i>Interpolation</i></a>, Hlong <a href="#Width"><i>Width</i></a>, Hlong <a href="#Height"><i>Height</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>AffineTransImageSize</b>(const HHomMat2D&amp; <a href="#HomMat2D"><i>HomMat2D</i></a>, const char* <a href="#Interpolation"><i>Interpolation</i></a>, Hlong <a href="#Width"><i>Width</i></a>, Hlong <a href="#Height"><i>Height</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>AffineTransImageSize</b>(const HHomMat2D&amp; <a href="#HomMat2D"><i>HomMat2D</i></a>, const wchar_t* <a href="#Interpolation"><i>Interpolation</i></a>, Hlong <a href="#Width"><i>Width</i></a>, Hlong <a href="#Height"><i>Height</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HHomMat2D.html">HHomMat2D</a>::<b>AffineTransImageSize</b>(const HImage&amp; <a href="#Image"><i>Image</i></a>, const HString&amp; <a href="#Interpolation"><i>Interpolation</i></a>, Hlong <a href="#Width"><i>Width</i></a>, Hlong <a href="#Height"><i>Height</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HHomMat2D.html">HHomMat2D</a>::<b>AffineTransImageSize</b>(const HImage&amp; <a href="#Image"><i>Image</i></a>, const char* <a href="#Interpolation"><i>Interpolation</i></a>, Hlong <a href="#Width"><i>Width</i></a>, Hlong <a href="#Height"><i>Height</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HHomMat2D.html">HHomMat2D</a>::<b>AffineTransImageSize</b>(const HImage&amp; <a href="#Image"><i>Image</i></a>, const wchar_t* <a href="#Interpolation"><i>Interpolation</i></a>, Hlong <a href="#Width"><i>Width</i></a>, Hlong <a href="#Height"><i>Height</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>AffineTransImageSize</b>(<a href="HObject.html">HObject</a> <a href="#Image"><i>image</i></a>, out <a href="HObject.html">HObject</a> <a href="#ImageAffineTrans"><i>imageAffineTrans</i></a>, <a href="HTuple.html">HTuple</a> <a href="#HomMat2D"><i>homMat2D</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Interpolation"><i>interpolation</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Width"><i>width</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Height"><i>height</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>.<b>AffineTransImageSize</b>(<a href="HHomMat2D.html">HHomMat2D</a> <a href="#HomMat2D"><i>homMat2D</i></a>, string <a href="#Interpolation"><i>interpolation</i></a>, int <a href="#Width"><i>width</i></a>, int <a href="#Height"><i>height</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HHomMat2D.html">HHomMat2D</a>.<b>AffineTransImageSize</b>(<a href="HImage.html">HImage</a> <a href="#Image"><i>image</i></a>, string <a href="#Interpolation"><i>interpolation</i></a>, int <a href="#Width"><i>width</i></a>, int <a href="#Height"><i>height</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>affine_trans_image_size</b>(<a href="#Image"><i>image</i></a>: HObject, <a href="#HomMat2D"><i>hom_mat_2d</i></a>: Sequence[float], <a href="#Interpolation"><i>interpolation</i></a>: str, <a href="#Width"><i>width</i></a>: int, <a href="#Height"><i>height</i></a>: int) -&gt; HObject</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">affine_trans_image_size</span><span data-if="c" style="display:none">affine_trans_image_size</span><span data-if="cpp" style="display:none">AffineTransImageSize</span><span data-if="com" style="display:none">AffineTransImageSize</span><span data-if="dotnet" style="display:none">AffineTransImageSize</span><span data-if="python" style="display:none">affine_trans_image_size</span></code> applies an arbitrary affine 2D
transformation, i.e., scaling, rotation, translation, and slant
(skewing), to the images given in <a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a> and returns the
transformed images in <a href="#ImageAffineTrans"><i><code><span data-if="hdevelop" style="display:inline">ImageAffineTrans</span><span data-if="c" style="display:none">ImageAffineTrans</span><span data-if="cpp" style="display:none">ImageAffineTrans</span><span data-if="com" style="display:none">ImageAffineTrans</span><span data-if="dotnet" style="display:none">imageAffineTrans</span><span data-if="python" style="display:none">image_affine_trans</span></code></i></a>.  The affine
transformation is described by the homogeneous transformation matrix
given in <a href="#HomMat2D"><i><code><span data-if="hdevelop" style="display:inline">HomMat2D</span><span data-if="c" style="display:none">HomMat2D</span><span data-if="cpp" style="display:none">HomMat2D</span><span data-if="com" style="display:none">HomMat2D</span><span data-if="dotnet" style="display:none">homMat2D</span><span data-if="python" style="display:none">hom_mat_2d</span></code></i></a>, which can be created using 该算子s
<a href="hom_mat2d_identity.html"><code><span data-if="hdevelop" style="display:inline">hom_mat2d_identity</span><span data-if="c" style="display:none">hom_mat2d_identity</span><span data-if="cpp" style="display:none">HomMat2dIdentity</span><span data-if="com" style="display:none">HomMat2dIdentity</span><span data-if="dotnet" style="display:none">HomMat2dIdentity</span><span data-if="python" style="display:none">hom_mat2d_identity</span></code></a>, <a href="hom_mat2d_scale.html"><code><span data-if="hdevelop" style="display:inline">hom_mat2d_scale</span><span data-if="c" style="display:none">hom_mat2d_scale</span><span data-if="cpp" style="display:none">HomMat2dScale</span><span data-if="com" style="display:none">HomMat2dScale</span><span data-if="dotnet" style="display:none">HomMat2dScale</span><span data-if="python" style="display:none">hom_mat2d_scale</span></code></a>,
<a href="hom_mat2d_rotate.html"><code><span data-if="hdevelop" style="display:inline">hom_mat2d_rotate</span><span data-if="c" style="display:none">hom_mat2d_rotate</span><span data-if="cpp" style="display:none">HomMat2dRotate</span><span data-if="com" style="display:none">HomMat2dRotate</span><span data-if="dotnet" style="display:none">HomMat2dRotate</span><span data-if="python" style="display:none">hom_mat2d_rotate</span></code></a>, <a href="hom_mat2d_translate.html"><code><span data-if="hdevelop" style="display:inline">hom_mat2d_translate</span><span data-if="c" style="display:none">hom_mat2d_translate</span><span data-if="cpp" style="display:none">HomMat2dTranslate</span><span data-if="com" style="display:none">HomMat2dTranslate</span><span data-if="dotnet" style="display:none">HomMat2dTranslate</span><span data-if="python" style="display:none">hom_mat2d_translate</span></code></a>, etc., or be
the result of operators like <a href="vector_angle_to_rigid.html"><code><span data-if="hdevelop" style="display:inline">vector_angle_to_rigid</span><span data-if="c" style="display:none">vector_angle_to_rigid</span><span data-if="cpp" style="display:none">VectorAngleToRigid</span><span data-if="com" style="display:none">VectorAngleToRigid</span><span data-if="dotnet" style="display:none">VectorAngleToRigid</span><span data-if="python" style="display:none">vector_angle_to_rigid</span></code></a>.
</p>
<p>The components of the homogeneous transformation matrix are
interpreted as follows: The <em>row</em> coordinate of the image
corresponds to x and the <em>column</em> coordinate corresponds to
y of the coordinate system in which the transformation matrix was
defined. This is necessary to obtain a right-handed coordinate
system for the image.  In particular, this assures that rotations
are performed in the correct direction.  Note that the (x,y)
order of the matrices quite naturally corresponds to the usual
(row,column) order for coordinates in the image.
</p>
<p>The region of the input image is ignored, i.e., assumed to be the
full rectangle of the image.  The region of the resulting image is
set to the transformed rectangle of the input image.  If necessary,
the resulting image is filled with zero (black) outside of the
region of the original image.
</p>
<p>Generally, transformed points will lie between pixel coordinates.
Therefore, an appropriate interpolation scheme has to be used.  The
interpolation can also be used to avoid aliasing effects for scaled
images.  The quality and speed of the interpolation can be set by
the parameter <a href="#Interpolation"><i><code><span data-if="hdevelop" style="display:inline">Interpolation</span><span data-if="c" style="display:none">Interpolation</span><span data-if="cpp" style="display:none">Interpolation</span><span data-if="com" style="display:none">Interpolation</span><span data-if="dotnet" style="display:none">interpolation</span><span data-if="python" style="display:none">interpolation</span></code></i></a>:
</p>
<dl class="generic">

<dt><b>nearest_neighbor</b></dt>
<dd><p>
 Nearest-neighbor interpolation: The
gray value is determined from the nearest pixel's gray value
(possibly low quality, very fast).
</p></dd>

<dt><b>bilinear</b></dt>
<dd><p>
 Bilinear interpolation.  The gray value is
determined from the four nearest pixels through bilinear
interpolation.  If the affine transformation contains a scaling
with a scale factor &lt; 1, no smoothing is performed, which may
cause severe aliasing effects (medium quality and run time).
</p></dd>

<dt><b>bicubic</b></dt>
<dd><p>
 Bicubic interpolation.  The gray value is
determined from the <span title="1" style="vertical-align:-0.195552em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.33992em" height="0.850062em" viewBox="0 0 37.438690 13.600998">
<!-- Original BoundingBox: -18.719345 -6.800491 18.719345 6.800507 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_52">
      <path style="fill-rule: evenodd;" d="M294.000000 -165.000000L294.000000 -78.000000C294.000000 -42.000000,292.000000 -31.000000,218.000000 -31.000000L197.000000 -31.000000L197.000000 -0.000000L332.000000 -0.000000L238.000000 -3.000000L290.000000 -3.000000L332.000000 -3.000000L374.000000 -3.000000L427.000000 -3.000000L468.000000 -0.000000L468.000000 -31.000000L447.000000 -31.000000C373.000000 -31.000000,371.000000 -42.000000,371.000000 -78.000000L371.000000 -165.000000L471.000000 -165.000000L471.000000 -196.000000L371.000000 -196.000000L371.000000 -651.000000C371.000000 -671.000000,371.000000 -677.000000,355.000000 -677.000000C346.000000 -677.000000,343.000000 -677.000000,335.000000 -665.000000L28.000000 -196.000000L28.000000 -165.000000M300.000000 -196.000000L56.000000 -196.000000L300.000000 -569.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_2">
      <path style="fill-rule: evenodd;" d="M389.000000 -278.000000L189.000000 -477.000000C177.000000 -489.000000,175.000000 -491.000000,167.000000 -491.000000C157.000000 -491.000000,147.000000 -482.000000,147.000000 -471.000000C147.000000 -464.000000,149.000000 -462.000000,160.000000 -451.000000L360.000000 -250.000000L160.000000 -49.000000C149.000000 -38.000000,147.000000 -36.000000,147.000000 -29.000000C147.000000 -18.000000,157.000000 -9.000000,167.000000 -9.000000C175.000000 -9.000000,177.000000 -11.000000,189.000000 -23.000000L388.000000 -222.000000L595.000000 -15.000000C597.000000 -14.000000,604.000000 -9.000000,610.000000 -9.000000C622.000000 -9.000000,630.000000 -18.000000,630.000000 -29.000000C630.000000 -31.000000,630.000000 -35.000000,627.000000 -40.000000C626.000000 -42.000000,467.000000 -199.000000,417.000000 -250.000000L600.000000 -433.000000C605.000000 -439.000000,620.000000 -452.000000,625.000000 -458.000000C626.000000 -460.000000,630.000000 -464.000000,630.000000 -471.000000C630.000000 -482.000000,622.000000 -491.000000,610.000000 -491.000000C602.000000 -491.000000,598.000000 -487.000000,587.000000 -476.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.296646 10.472168)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_52"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,11.809021 10.472168)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_2"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,27.749237 10.472168)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_52"></use>
  </g>
</svg></span> nearest pixels through
bicubic interpolation.  If the affine transformation contains a
scaling with a scale factor &lt; 1, no smoothing is performed,
which may cause severe aliasing effects (high quality for
enlargements, slow).
</p></dd>

<dt><b>constant</b></dt>
<dd><p>
 Bilinear interpolation.  The gray value is
determined from the four nearest pixels through bilinear
interpolation.  If the affine transformation contains a scaling
with a scale factor &lt; 1, a kind of mean filter is used to
prevent aliasing effects (medium quality and run time).
</p></dd>

<dt><b>weighted</b></dt>
<dd><p>
 Bilinear interpolation.  The gray value is
determined from the four nearest pixels through bilinear
interpolation.  If the affine transformation contains a scaling
with a scale factor &lt; 1, a kind of Gaussian filter is used to
prevent aliasing effects (high quality, slow).
</p></dd>
</dl>
<p>In addition, the system parameter <i><span data-if="hdevelop" style="display:inline">'int_zooming'</span><span data-if="c" style="display:none">"int_zooming"</span><span data-if="cpp" style="display:none">"int_zooming"</span><span data-if="com" style="display:none">"int_zooming"</span><span data-if="dotnet" style="display:none">"int_zooming"</span><span data-if="python" style="display:none">"int_zooming"</span></i> (see
<a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system</span><span data-if="c" style="display:none">set_system</span><span data-if="cpp" style="display:none">SetSystem</span><span data-if="com" style="display:none">SetSystem</span><span data-if="dotnet" style="display:none">SetSystem</span><span data-if="python" style="display:none">set_system</span></code></a>) affects the accuracy of the transformation.  If
<i><span data-if="hdevelop" style="display:inline">'int_zooming'</span><span data-if="c" style="display:none">"int_zooming"</span><span data-if="cpp" style="display:none">"int_zooming"</span><span data-if="com" style="display:none">"int_zooming"</span><span data-if="dotnet" style="display:none">"int_zooming"</span><span data-if="python" style="display:none">"int_zooming"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, the transformation
for byte, int2 and uint2 images is carried out internally using
fixed point arithmetic, leading to much shorter execution times.
However, the accuracy of the transformed gray values is smaller in
this case.  For byte images, the differences to the more accurate
calculation (using <i><span data-if="hdevelop" style="display:inline">'int_zooming'</span><span data-if="c" style="display:none">"int_zooming"</span><span data-if="cpp" style="display:none">"int_zooming"</span><span data-if="com" style="display:none">"int_zooming"</span><span data-if="dotnet" style="display:none">"int_zooming"</span><span data-if="python" style="display:none">"int_zooming"</span></i> = <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>) is
typically less than two gray levels.  Correspondingly, for int2 and
uint2 images, the gray value differences are less than 1/128 times
the dynamic gray value range of the image, i.e., they can be as
large as 512 gray levels if the entire dynamic range of 16 bit is
used. When using fixed point arithmetic, the domain of
resulting images can differ as well.
Additionally, if a large scale factor is applied and a large
output image is obtained, then undefined gray values at the lower
and at the right image border may result. The maximum width
<span title="2" style="vertical-align:-0.252052em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2.52238em" height="0.955223em" viewBox="0 0 40.358063 15.283569">
<!-- Original BoundingBox: -20.179031 -7.641785 20.179031 7.641785 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_97">
      <path style="fill-rule: evenodd;" d="M422.000000 -382.000000C401.000000 -415.000000,367.000000 -441.000000,319.000000 -441.000000C191.000000 -441.000000,61.000000 -300.000000,61.000000 -156.000000C61.000000 -59.000000,126.000000 10.000000,212.000000 10.000000C266.000000 10.000000,314.000000 -21.000000,354.000000 -60.000000C373.000000 -0.000000,431.000000 10.000000,457.000000 10.000000C493.000000 10.000000,518.000000 -12.000000,536.000000 -43.000000C558.000000 -82.000000,571.000000 -139.000000,571.000000 -143.000000C571.000000 -156.000000,558.000000 -156.000000,555.000000 -156.000000C541.000000 -156.000000,540.000000 -152.000000,533.000000 -125.000000C521.000000 -77.000000,502.000000 -18.000000,460.000000 -18.000000C434.000000 -18.000000,427.000000 -40.000000,427.000000 -67.000000C427.000000 -84.000000,435.000000 -120.000000,442.000000 -146.000000C449.000000 -173.000000,459.000000 -214.000000,464.000000 -236.000000L484.000000 -312.000000C490.000000 -338.000000,502.000000 -385.000000,502.000000 -390.000000C502.000000 -412.000000,484.000000 -422.000000,468.000000 -422.000000C451.000000 -422.000000,428.000000 -410.000000,422.000000 -382.000000M358.000000 -125.000000C351.000000 -97.000000,329.000000 -77.000000,307.000000 -58.000000C298.000000 -50.000000,258.000000 -18.000000,215.000000 -18.000000C178.000000 -18.000000,142.000000 -44.000000,142.000000 -115.000000C142.000000 -168.000000,171.000000 -278.000000,194.000000 -318.000000C240.000000 -398.000000,291.000000 -413.000000,319.000000 -413.000000C389.000000 -413.000000,408.000000 -337.000000,408.000000 -326.000000C408.000000 -322.000000,406.000000 -315.000000,405.000000 -312.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_109">
      <path style="fill-rule: evenodd;" d="M434.000000 -81.000000C429.000000 -61.000000,420.000000 -27.000000,420.000000 -22.000000C420.000000 -0.000000,438.000000 10.000000,454.000000 10.000000C472.000000 10.000000,488.000000 -3.000000,493.000000 -12.000000C498.000000 -21.000000,506.000000 -53.000000,511.000000 -74.000000C516.000000 -93.000000,527.000000 -139.000000,533.000000 -164.000000C539.000000 -186.000000,545.000000 -208.000000,550.000000 -231.000000C561.000000 -274.000000,561.000000 -276.000000,581.000000 -307.000000C613.000000 -356.000000,663.000000 -413.000000,741.000000 -413.000000C797.000000 -413.000000,800.000000 -367.000000,800.000000 -343.000000C800.000000 -283.000000,757.000000 -172.000000,741.000000 -130.000000C730.000000 -102.000000,726.000000 -93.000000,726.000000 -76.000000C726.000000 -23.000000,770.000000 10.000000,821.000000 10.000000C921.000000 10.000000,965.000000 -128.000000,965.000000 -143.000000C965.000000 -156.000000,952.000000 -156.000000,949.000000 -156.000000C935.000000 -156.000000,934.000000 -150.000000,930.000000 -139.000000C907.000000 -59.000000,864.000000 -18.000000,824.000000 -18.000000C803.000000 -18.000000,799.000000 -32.000000,799.000000 -53.000000C799.000000 -76.000000,804.000000 -89.000000,822.000000 -134.000000C834.000000 -165.000000,875.000000 -271.000000,875.000000 -327.000000C875.000000 -343.000000,875.000000 -385.000000,838.000000 -414.000000C821.000000 -427.000000,792.000000 -441.000000,745.000000 -441.000000C655.000000 -441.000000,600.000000 -382.000000,568.000000 -340.000000C560.000000 -425.000000,489.000000 -441.000000,438.000000 -441.000000C355.000000 -441.000000,299.000000 -390.000000,269.000000 -350.000000C262.000000 -419.000000,203.000000 -441.000000,162.000000 -441.000000C119.000000 -441.000000,96.000000 -410.000000,83.000000 -387.000000C61.000000 -350.000000,47.000000 -293.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -278.000000,86.000000 -305.000000C101.000000 -364.000000,120.000000 -413.000000,159.000000 -413.000000C185.000000 -413.000000,192.000000 -391.000000,192.000000 -364.000000C192.000000 -345.000000,183.000000 -308.000000,176.000000 -281.000000C169.000000 -254.000000,159.000000 -213.000000,154.000000 -191.000000L122.000000 -63.000000C118.000000 -50.000000,112.000000 -25.000000,112.000000 -22.000000C112.000000 -0.000000,130.000000 10.000000,146.000000 10.000000C164.000000 10.000000,180.000000 -3.000000,185.000000 -12.000000C190.000000 -21.000000,198.000000 -53.000000,203.000000 -74.000000C208.000000 -93.000000,219.000000 -139.000000,225.000000 -164.000000C231.000000 -186.000000,237.000000 -208.000000,242.000000 -231.000000C253.000000 -272.000000,255.000000 -280.000000,284.000000 -321.000000C312.000000 -361.000000,359.000000 -413.000000,434.000000 -413.000000C492.000000 -413.000000,493.000000 -362.000000,493.000000 -343.000000C493.000000 -318.000000,490.000000 -305.000000,476.000000 -249.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_120">
      <path style="fill-rule: evenodd;" d="M249.000000 -106.000000C239.000000 -72.000000,206.000000 -18.000000,155.000000 -18.000000C152.000000 -18.000000,122.000000 -18.000000,101.000000 -32.000000C142.000000 -45.000000,145.000000 -81.000000,145.000000 -87.000000C145.000000 -109.000000,128.000000 -124.000000,105.000000 -124.000000C77.000000 -124.000000,48.000000 -100.000000,48.000000 -63.000000C48.000000 -13.000000,104.000000 10.000000,153.000000 10.000000C199.000000 10.000000,240.000000 -19.000000,265.000000 -61.000000C289.000000 -8.000000,344.000000 10.000000,384.000000 10.000000C499.000000 10.000000,560.000000 -115.000000,560.000000 -143.000000C560.000000 -156.000000,547.000000 -156.000000,544.000000 -156.000000C530.000000 -156.000000,529.000000 -151.000000,525.000000 -139.000000C504.000000 -70.000000,444.000000 -18.000000,388.000000 -18.000000C348.000000 -18.000000,327.000000 -45.000000,327.000000 -83.000000C327.000000 -109.000000,351.000000 -200.000000,379.000000 -311.000000C399.000000 -388.000000,444.000000 -413.000000,477.000000 -413.000000C479.000000 -413.000000,510.000000 -413.000000,531.000000 -399.000000C499.000000 -390.000000,487.000000 -362.000000,487.000000 -344.000000C487.000000 -322.000000,504.000000 -307.000000,527.000000 -307.000000C550.000000 -307.000000,583.000000 -326.000000,583.000000 -368.000000C583.000000 -424.000000,519.000000 -441.000000,479.000000 -441.000000C429.000000 -441.000000,389.000000 -408.000000,367.000000 -370.000000C349.000000 -411.000000,303.000000 -441.000000,247.000000 -441.000000C135.000000 -441.000000,71.000000 -318.000000,71.000000 -288.000000C71.000000 -275.000000,85.000000 -275.000000,88.000000 -275.000000C101.000000 -275.000000,102.000000 -279.000000,107.000000 -292.000000C132.000000 -370.000000,195.000000 -413.000000,244.000000 -413.000000C277.000000 -413.000000,304.000000 -395.000000,304.000000 -347.000000C304.000000 -327.000000,292.000000 -277.000000,283.000000 -243.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_66">
      <path style="fill-rule: evenodd;" d="M160.000000 -78.000000C150.000000 -39.000000,148.000000 -31.000000,69.000000 -31.000000C52.000000 -31.000000,42.000000 -31.000000,42.000000 -11.000000C42.000000 -0.000000,51.000000 -0.000000,69.000000 -0.000000L426.000000 -0.000000C584.000000 -0.000000,702.000000 -118.000000,702.000000 -216.000000C702.000000 -288.000000,644.000000 -346.000000,547.000000 -357.000000C651.000000 -376.000000,756.000000 -450.000000,756.000000 -545.000000C756.000000 -619.000000,690.000000 -683.000000,570.000000 -683.000000L234.000000 -683.000000C215.000000 -683.000000,205.000000 -683.000000,205.000000 -663.000000C205.000000 -652.000000,214.000000 -652.000000,233.000000 -652.000000C235.000000 -652.000000,254.000000 -652.000000,271.000000 -650.000000C289.000000 -648.000000,298.000000 -647.000000,298.000000 -634.000000C298.000000 -630.000000,297.000000 -627.000000,294.000000 -615.000000M311.000000 -366.000000L373.000000 -614.000000C382.000000 -649.000000,384.000000 -652.000000,427.000000 -652.000000L556.000000 -652.000000C644.000000 -652.000000,665.000000 -593.000000,665.000000 -549.000000C665.000000 -461.000000,579.000000 -366.000000,457.000000 -366.000000M266.000000 -31.000000C252.000000 -31.000000,250.000000 -31.000000,244.000000 -32.000000C234.000000 -33.000000,231.000000 -34.000000,231.000000 -42.000000C231.000000 -45.000000,231.000000 -47.000000,236.000000 -65.000000L305.000000 -344.000000L494.000000 -344.000000C590.000000 -344.000000,609.000000 -270.000000,609.000000 -227.000000C609.000000 -128.000000,520.000000 -31.000000,402.000000 -31.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.836960 11.250732)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_66"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,12.927734 13.641785)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_109"></use>
    <use xlink:href="#GLYPHcmmi7_97" x="7.096230"></use>
    <use xlink:href="#GLYPHcmmi7_120" x="11.433943"></use>
  </g>
</svg></span> of this border of undefined gray values can be
estimated as <span title="3" style="vertical-align:-0.34159em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="9.58756em" height="1.18504em" viewBox="0 0 153.400894 18.960571">
<!-- Original BoundingBox: -76.700455 -9.480286 76.700439 9.480286 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_97">
      <path style="fill-rule: evenodd;" d="M422.000000 -382.000000C401.000000 -415.000000,367.000000 -441.000000,319.000000 -441.000000C191.000000 -441.000000,61.000000 -300.000000,61.000000 -156.000000C61.000000 -59.000000,126.000000 10.000000,212.000000 10.000000C266.000000 10.000000,314.000000 -21.000000,354.000000 -60.000000C373.000000 -0.000000,431.000000 10.000000,457.000000 10.000000C493.000000 10.000000,518.000000 -12.000000,536.000000 -43.000000C558.000000 -82.000000,571.000000 -139.000000,571.000000 -143.000000C571.000000 -156.000000,558.000000 -156.000000,555.000000 -156.000000C541.000000 -156.000000,540.000000 -152.000000,533.000000 -125.000000C521.000000 -77.000000,502.000000 -18.000000,460.000000 -18.000000C434.000000 -18.000000,427.000000 -40.000000,427.000000 -67.000000C427.000000 -84.000000,435.000000 -120.000000,442.000000 -146.000000C449.000000 -173.000000,459.000000 -214.000000,464.000000 -236.000000L484.000000 -312.000000C490.000000 -338.000000,502.000000 -385.000000,502.000000 -390.000000C502.000000 -412.000000,484.000000 -422.000000,468.000000 -422.000000C451.000000 -422.000000,428.000000 -410.000000,422.000000 -382.000000M358.000000 -125.000000C351.000000 -97.000000,329.000000 -77.000000,307.000000 -58.000000C298.000000 -50.000000,258.000000 -18.000000,215.000000 -18.000000C178.000000 -18.000000,142.000000 -44.000000,142.000000 -115.000000C142.000000 -168.000000,171.000000 -278.000000,194.000000 -318.000000C240.000000 -398.000000,291.000000 -413.000000,319.000000 -413.000000C389.000000 -413.000000,408.000000 -337.000000,408.000000 -326.000000C408.000000 -322.000000,406.000000 -315.000000,405.000000 -312.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_109">
      <path style="fill-rule: evenodd;" d="M434.000000 -81.000000C429.000000 -61.000000,420.000000 -27.000000,420.000000 -22.000000C420.000000 -0.000000,438.000000 10.000000,454.000000 10.000000C472.000000 10.000000,488.000000 -3.000000,493.000000 -12.000000C498.000000 -21.000000,506.000000 -53.000000,511.000000 -74.000000C516.000000 -93.000000,527.000000 -139.000000,533.000000 -164.000000C539.000000 -186.000000,545.000000 -208.000000,550.000000 -231.000000C561.000000 -274.000000,561.000000 -276.000000,581.000000 -307.000000C613.000000 -356.000000,663.000000 -413.000000,741.000000 -413.000000C797.000000 -413.000000,800.000000 -367.000000,800.000000 -343.000000C800.000000 -283.000000,757.000000 -172.000000,741.000000 -130.000000C730.000000 -102.000000,726.000000 -93.000000,726.000000 -76.000000C726.000000 -23.000000,770.000000 10.000000,821.000000 10.000000C921.000000 10.000000,965.000000 -128.000000,965.000000 -143.000000C965.000000 -156.000000,952.000000 -156.000000,949.000000 -156.000000C935.000000 -156.000000,934.000000 -150.000000,930.000000 -139.000000C907.000000 -59.000000,864.000000 -18.000000,824.000000 -18.000000C803.000000 -18.000000,799.000000 -32.000000,799.000000 -53.000000C799.000000 -76.000000,804.000000 -89.000000,822.000000 -134.000000C834.000000 -165.000000,875.000000 -271.000000,875.000000 -327.000000C875.000000 -343.000000,875.000000 -385.000000,838.000000 -414.000000C821.000000 -427.000000,792.000000 -441.000000,745.000000 -441.000000C655.000000 -441.000000,600.000000 -382.000000,568.000000 -340.000000C560.000000 -425.000000,489.000000 -441.000000,438.000000 -441.000000C355.000000 -441.000000,299.000000 -390.000000,269.000000 -350.000000C262.000000 -419.000000,203.000000 -441.000000,162.000000 -441.000000C119.000000 -441.000000,96.000000 -410.000000,83.000000 -387.000000C61.000000 -350.000000,47.000000 -293.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -278.000000,86.000000 -305.000000C101.000000 -364.000000,120.000000 -413.000000,159.000000 -413.000000C185.000000 -413.000000,192.000000 -391.000000,192.000000 -364.000000C192.000000 -345.000000,183.000000 -308.000000,176.000000 -281.000000C169.000000 -254.000000,159.000000 -213.000000,154.000000 -191.000000L122.000000 -63.000000C118.000000 -50.000000,112.000000 -25.000000,112.000000 -22.000000C112.000000 -0.000000,130.000000 10.000000,146.000000 10.000000C164.000000 10.000000,180.000000 -3.000000,185.000000 -12.000000C190.000000 -21.000000,198.000000 -53.000000,203.000000 -74.000000C208.000000 -93.000000,219.000000 -139.000000,225.000000 -164.000000C231.000000 -186.000000,237.000000 -208.000000,242.000000 -231.000000C253.000000 -272.000000,255.000000 -280.000000,284.000000 -321.000000C312.000000 -361.000000,359.000000 -413.000000,434.000000 -413.000000C492.000000 -413.000000,493.000000 -362.000000,493.000000 -343.000000C493.000000 -318.000000,490.000000 -305.000000,476.000000 -249.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_120">
      <path style="fill-rule: evenodd;" d="M249.000000 -106.000000C239.000000 -72.000000,206.000000 -18.000000,155.000000 -18.000000C152.000000 -18.000000,122.000000 -18.000000,101.000000 -32.000000C142.000000 -45.000000,145.000000 -81.000000,145.000000 -87.000000C145.000000 -109.000000,128.000000 -124.000000,105.000000 -124.000000C77.000000 -124.000000,48.000000 -100.000000,48.000000 -63.000000C48.000000 -13.000000,104.000000 10.000000,153.000000 10.000000C199.000000 10.000000,240.000000 -19.000000,265.000000 -61.000000C289.000000 -8.000000,344.000000 10.000000,384.000000 10.000000C499.000000 10.000000,560.000000 -115.000000,560.000000 -143.000000C560.000000 -156.000000,547.000000 -156.000000,544.000000 -156.000000C530.000000 -156.000000,529.000000 -151.000000,525.000000 -139.000000C504.000000 -70.000000,444.000000 -18.000000,388.000000 -18.000000C348.000000 -18.000000,327.000000 -45.000000,327.000000 -83.000000C327.000000 -109.000000,351.000000 -200.000000,379.000000 -311.000000C399.000000 -388.000000,444.000000 -413.000000,477.000000 -413.000000C479.000000 -413.000000,510.000000 -413.000000,531.000000 -399.000000C499.000000 -390.000000,487.000000 -362.000000,487.000000 -344.000000C487.000000 -322.000000,504.000000 -307.000000,527.000000 -307.000000C550.000000 -307.000000,583.000000 -326.000000,583.000000 -368.000000C583.000000 -424.000000,519.000000 -441.000000,479.000000 -441.000000C429.000000 -441.000000,389.000000 -408.000000,367.000000 -370.000000C349.000000 -411.000000,303.000000 -441.000000,247.000000 -441.000000C135.000000 -441.000000,71.000000 -318.000000,71.000000 -288.000000C71.000000 -275.000000,85.000000 -275.000000,88.000000 -275.000000C101.000000 -275.000000,102.000000 -279.000000,107.000000 -292.000000C132.000000 -370.000000,195.000000 -413.000000,244.000000 -413.000000C277.000000 -413.000000,304.000000 -395.000000,304.000000 -347.000000C304.000000 -327.000000,292.000000 -277.000000,283.000000 -243.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_48">
      <path style="fill-rule: evenodd;" d="M460.000000 -320.000000C460.000000 -400.000000,455.000000 -480.000000,420.000000 -554.000000C374.000000 -650.000000,292.000000 -666.000000,250.000000 -666.000000C190.000000 -666.000000,117.000000 -640.000000,76.000000 -547.000000C44.000000 -478.000000,39.000000 -400.000000,39.000000 -320.000000C39.000000 -245.000000,43.000000 -155.000000,84.000000 -79.000000C127.000000 2.000000,200.000000 22.000000,249.000000 22.000000C303.000000 22.000000,379.000000 1.000000,423.000000 -94.000000C455.000000 -163.000000,460.000000 -241.000000,460.000000 -320.000000M249.000000 -0.000000C210.000000 -0.000000,151.000000 -25.000000,133.000000 -121.000000C122.000000 -181.000000,122.000000 -273.000000,122.000000 -332.000000C122.000000 -396.000000,122.000000 -462.000000,130.000000 -516.000000C149.000000 -635.000000,224.000000 -644.000000,249.000000 -644.000000C282.000000 -644.000000,348.000000 -626.000000,367.000000 -527.000000C377.000000 -471.000000,377.000000 -395.000000,377.000000 -332.000000C377.000000 -257.000000,377.000000 -189.000000,366.000000 -125.000000C351.000000 -30.000000,294.000000 -0.000000,249.000000 -0.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_50">
      <path style="fill-rule: evenodd;" d="M127.000000 -77.000000L233.000000 -180.000000C389.000000 -318.000000,449.000000 -372.000000,449.000000 -472.000000C449.000000 -586.000000,359.000000 -666.000000,237.000000 -666.000000C124.000000 -666.000000,50.000000 -574.000000,50.000000 -485.000000C50.000000 -429.000000,100.000000 -429.000000,103.000000 -429.000000C120.000000 -429.000000,155.000000 -441.000000,155.000000 -482.000000C155.000000 -508.000000,137.000000 -534.000000,102.000000 -534.000000C94.000000 -534.000000,92.000000 -534.000000,89.000000 -533.000000C112.000000 -598.000000,166.000000 -635.000000,224.000000 -635.000000C315.000000 -635.000000,358.000000 -554.000000,358.000000 -472.000000C358.000000 -392.000000,308.000000 -313.000000,253.000000 -251.000000L61.000000 -37.000000C50.000000 -26.000000,50.000000 -24.000000,50.000000 -0.000000L421.000000 -0.000000L449.000000 -174.000000L424.000000 -174.000000C419.000000 -144.000000,412.000000 -100.000000,402.000000 -85.000000C395.000000 -77.000000,329.000000 -77.000000,307.000000 -77.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_53">
      <path style="fill-rule: evenodd;" d="M449.000000 -201.000000C449.000000 -320.000000,367.000000 -420.000000,259.000000 -420.000000C211.000000 -420.000000,168.000000 -404.000000,132.000000 -369.000000L132.000000 -564.000000C152.000000 -558.000000,185.000000 -551.000000,217.000000 -551.000000C340.000000 -551.000000,410.000000 -642.000000,410.000000 -655.000000C410.000000 -661.000000,407.000000 -666.000000,400.000000 -666.000000C399.000000 -666.000000,397.000000 -666.000000,392.000000 -663.000000C372.000000 -654.000000,323.000000 -634.000000,256.000000 -634.000000C216.000000 -634.000000,170.000000 -641.000000,123.000000 -662.000000C115.000000 -665.000000,113.000000 -665.000000,111.000000 -665.000000C101.000000 -665.000000,101.000000 -657.000000,101.000000 -641.000000L101.000000 -345.000000C101.000000 -327.000000,101.000000 -319.000000,115.000000 -319.000000C122.000000 -319.000000,124.000000 -322.000000,128.000000 -328.000000C139.000000 -344.000000,176.000000 -398.000000,257.000000 -398.000000C309.000000 -398.000000,334.000000 -352.000000,342.000000 -334.000000C358.000000 -297.000000,360.000000 -258.000000,360.000000 -208.000000C360.000000 -173.000000,360.000000 -113.000000,336.000000 -71.000000C312.000000 -32.000000,275.000000 -6.000000,229.000000 -6.000000C156.000000 -6.000000,99.000000 -59.000000,82.000000 -118.000000C85.000000 -117.000000,88.000000 -116.000000,99.000000 -116.000000C132.000000 -116.000000,149.000000 -141.000000,149.000000 -165.000000C149.000000 -189.000000,132.000000 -214.000000,99.000000 -214.000000C85.000000 -214.000000,50.000000 -207.000000,50.000000 -161.000000C50.000000 -75.000000,119.000000 22.000000,231.000000 22.000000C347.000000 22.000000,449.000000 -74.000000,449.000000 -201.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_61">
      <path style="fill-rule: evenodd;" d="M687.000000 -327.000000C702.000000 -327.000000,721.000000 -327.000000,721.000000 -347.000000C721.000000 -367.000000,702.000000 -367.000000,688.000000 -367.000000L89.000000 -367.000000C75.000000 -367.000000,56.000000 -367.000000,56.000000 -347.000000C56.000000 -327.000000,75.000000 -327.000000,90.000000 -327.000000M688.000000 -133.000000C702.000000 -133.000000,721.000000 -133.000000,721.000000 -153.000000C721.000000 -173.000000,702.000000 -173.000000,687.000000 -173.000000L90.000000 -173.000000C75.000000 -173.000000,56.000000 -173.000000,56.000000 -153.000000C56.000000 -133.000000,75.000000 -133.000000,89.000000 -133.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_1">
      <path style="fill-rule: evenodd;" d="M192.000000 -250.000000C192.000000 -279.000000,168.000000 -303.000000,139.000000 -303.000000C110.000000 -303.000000,86.000000 -279.000000,86.000000 -250.000000C86.000000 -221.000000,110.000000 -197.000000,139.000000 -197.000000C168.000000 -197.000000,192.000000 -221.000000,192.000000 -250.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_58">
      <path style="fill-rule: evenodd;" d="M192.000000 -53.000000C192.000000 -82.000000,168.000000 -106.000000,139.000000 -106.000000C110.000000 -106.000000,86.000000 -82.000000,86.000000 -53.000000C86.000000 -24.000000,110.000000 -0.000000,139.000000 -0.000000C168.000000 -0.000000,192.000000 -24.000000,192.000000 -53.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_61">
      <path style="fill-rule: evenodd;" d="M439.000000 -712.000000C444.000000 -725.000000,444.000000 -729.000000,444.000000 -730.000000C444.000000 -741.000000,435.000000 -750.000000,424.000000 -750.000000C417.000000 -750.000000,410.000000 -747.000000,407.000000 -741.000000L60.000000 212.000000C55.000000 225.000000,55.000000 229.000000,55.000000 230.000000C55.000000 241.000000,64.000000 250.000000,75.000000 250.000000C88.000000 250.000000,91.000000 243.000000,97.000000 226.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_66">
      <path style="fill-rule: evenodd;" d="M160.000000 -78.000000C150.000000 -39.000000,148.000000 -31.000000,69.000000 -31.000000C52.000000 -31.000000,42.000000 -31.000000,42.000000 -11.000000C42.000000 -0.000000,51.000000 -0.000000,69.000000 -0.000000L426.000000 -0.000000C584.000000 -0.000000,702.000000 -118.000000,702.000000 -216.000000C702.000000 -288.000000,644.000000 -346.000000,547.000000 -357.000000C651.000000 -376.000000,756.000000 -450.000000,756.000000 -545.000000C756.000000 -619.000000,690.000000 -683.000000,570.000000 -683.000000L234.000000 -683.000000C215.000000 -683.000000,205.000000 -683.000000,205.000000 -663.000000C205.000000 -652.000000,214.000000 -652.000000,233.000000 -652.000000C235.000000 -652.000000,254.000000 -652.000000,271.000000 -650.000000C289.000000 -648.000000,298.000000 -647.000000,298.000000 -634.000000C298.000000 -630.000000,297.000000 -627.000000,294.000000 -615.000000M311.000000 -366.000000L373.000000 -614.000000C382.000000 -649.000000,384.000000 -652.000000,427.000000 -652.000000L556.000000 -652.000000C644.000000 -652.000000,665.000000 -593.000000,665.000000 -549.000000C665.000000 -461.000000,579.000000 -366.000000,457.000000 -366.000000M266.000000 -31.000000C252.000000 -31.000000,250.000000 -31.000000,244.000000 -32.000000C234.000000 -33.000000,231.000000 -34.000000,231.000000 -42.000000C231.000000 -45.000000,231.000000 -47.000000,236.000000 -65.000000L305.000000 -344.000000L494.000000 -344.000000C590.000000 -344.000000,609.000000 -270.000000,609.000000 -227.000000C609.000000 -128.000000,520.000000 -31.000000,402.000000 -31.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_73">
      <path style="fill-rule: evenodd;" d="M374.000000 -606.000000C383.000000 -642.000000,386.000000 -652.000000,465.000000 -652.000000C489.000000 -652.000000,497.000000 -652.000000,497.000000 -671.000000C497.000000 -683.000000,486.000000 -683.000000,482.000000 -683.000000L350.000000 -683.000000L453.000000 -683.000000L379.000000 -680.000000L350.000000 -680.000000L320.000000 -680.000000L247.000000 -683.000000L217.000000 -683.000000C210.000000 -683.000000,197.000000 -683.000000,197.000000 -663.000000C197.000000 -652.000000,206.000000 -652.000000,225.000000 -652.000000C267.000000 -652.000000,294.000000 -652.000000,294.000000 -633.000000C294.000000 -628.000000,294.000000 -626.000000,292.000000 -617.000000L157.000000 -78.000000C148.000000 -41.000000,145.000000 -31.000000,66.000000 -31.000000C43.000000 -31.000000,34.000000 -31.000000,34.000000 -11.000000C34.000000 -0.000000,46.000000 -0.000000,49.000000 -0.000000L180.000000 -0.000000L78.000000 -0.000000L151.000000 -3.000000L180.000000 -3.000000L210.000000 -3.000000L284.000000 -0.000000L314.000000 -0.000000C322.000000 -0.000000,334.000000 -0.000000,334.000000 -19.000000C334.000000 -31.000000,326.000000 -31.000000,304.000000 -31.000000C286.000000 -31.000000,281.000000 -31.000000,261.000000 -33.000000C240.000000 -35.000000,236.000000 -39.000000,236.000000 -50.000000C236.000000 -58.000000,238.000000 -66.000000,240.000000 -73.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_83">
      <path style="fill-rule: evenodd;" d="M645.000000 -695.000000C645.000000 -698.000000,643.000000 -705.000000,634.000000 -705.000000C629.000000 -705.000000,628.000000 -704.000000,616.000000 -690.000000L568.000000 -633.000000C542.000000 -680.000000,490.000000 -705.000000,425.000000 -705.000000C298.000000 -705.000000,178.000000 -590.000000,178.000000 -469.000000C178.000000 -388.000000,231.000000 -342.000000,282.000000 -327.000000L389.000000 -299.000000C426.000000 -290.000000,481.000000 -275.000000,481.000000 -193.000000C481.000000 -103.000000,399.000000 -9.000000,301.000000 -9.000000C237.000000 -9.000000,126.000000 -31.000000,126.000000 -155.000000C126.000000 -179.000000,131.000000 -203.000000,132.000000 -209.000000C133.000000 -213.000000,134.000000 -214.000000,134.000000 -216.000000C134.000000 -226.000000,127.000000 -227.000000,122.000000 -227.000000C117.000000 -227.000000,115.000000 -226.000000,112.000000 -223.000000C108.000000 -219.000000,52.000000 9.000000,52.000000 12.000000C52.000000 18.000000,57.000000 22.000000,63.000000 22.000000C68.000000 22.000000,69.000000 21.000000,81.000000 7.000000L130.000000 -50.000000C173.000000 8.000000,241.000000 22.000000,299.000000 22.000000C435.000000 22.000000,553.000000 -111.000000,553.000000 -235.000000C553.000000 -304.000000,519.000000 -338.000000,504.000000 -352.000000C481.000000 -375.000000,466.000000 -379.000000,377.000000 -402.000000C355.000000 -408.000000,319.000000 -418.000000,310.000000 -420.000000C283.000000 -429.000000,249.000000 -458.000000,249.000000 -511.000000C249.000000 -592.000000,329.000000 -677.000000,424.000000 -677.000000C507.000000 -677.000000,568.000000 -634.000000,568.000000 -522.000000C568.000000 -490.000000,564.000000 -472.000000,564.000000 -466.000000C564.000000 -465.000000,564.000000 -456.000000,576.000000 -456.000000C586.000000 -456.000000,587.000000 -459.000000,591.000000 -476.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_49">
      <path style="fill-rule: evenodd;" d="M335.000000 -636.000000C335.000000 -663.000000,333.000000 -664.000000,305.000000 -664.000000C241.000000 -601.000000,150.000000 -600.000000,109.000000 -600.000000L109.000000 -564.000000C133.000000 -564.000000,199.000000 -564.000000,254.000000 -592.000000L254.000000 -82.000000C254.000000 -49.000000,254.000000 -36.000000,154.000000 -36.000000L116.000000 -36.000000L116.000000 -0.000000L294.000000 -0.000000L134.000000 -1.000000L257.000000 -4.000000L294.000000 -4.000000L325.000000 -4.000000L451.000000 -1.000000L473.000000 -0.000000L473.000000 -36.000000L435.000000 -36.000000C335.000000 -36.000000,335.000000 -49.000000,335.000000 -82.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_53">
      <path style="fill-rule: evenodd;" d="M155.000000 -558.000000C206.000000 -545.000000,236.000000 -545.000000,252.000000 -545.000000C384.000000 -545.000000,462.000000 -635.000000,462.000000 -650.000000C462.000000 -661.000000,455.000000 -664.000000,450.000000 -664.000000C448.000000 -664.000000,446.000000 -664.000000,442.000000 -661.000000C418.000000 -652.000000,365.000000 -632.000000,291.000000 -632.000000C263.000000 -632.000000,210.000000 -634.000000,145.000000 -659.000000C135.000000 -664.000000,133.000000 -664.000000,132.000000 -664.000000C119.000000 -664.000000,119.000000 -653.000000,119.000000 -637.000000L119.000000 -342.000000C119.000000 -325.000000,119.000000 -313.000000,135.000000 -313.000000C144.000000 -313.000000,145.000000 -315.000000,155.000000 -327.000000C198.000000 -382.000000,259.000000 -390.000000,294.000000 -390.000000C354.000000 -390.000000,381.000000 -342.000000,386.000000 -334.000000C404.000000 -301.000000,410.000000 -263.000000,410.000000 -205.000000C410.000000 -175.000000,410.000000 -116.000000,380.000000 -72.000000C355.000000 -36.000000,312.000000 -12.000000,263.000000 -12.000000C198.000000 -12.000000,131.000000 -48.000000,106.000000 -114.000000C144.000000 -111.000000,163.000000 -136.000000,163.000000 -163.000000C163.000000 -206.000000,126.000000 -214.000000,113.000000 -214.000000C111.000000 -214.000000,63.000000 -214.000000,63.000000 -160.000000C63.000000 -70.000000,145.000000 20.000000,265.000000 20.000000C393.000000 20.000000,505.000000 -75.000000,505.000000 -201.000000C505.000000 -314.000000,419.000000 -418.000000,295.000000 -418.000000C251.000000 -418.000000,199.000000 -407.000000,155.000000 -369.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.315536 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_66"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,12.406311 15.886185)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_109"></use>
    <use xlink:href="#GLYPHcmmi7_97" x="7.096230"></use>
    <use xlink:href="#GLYPHcmmi7_120" x="11.433943"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,43.085297 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,59.911133 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_48"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,67.881241 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_58"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,72.309097 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_53"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,83.821472 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_1"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,91.791565 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_83"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,106.026993 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_1"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,113.997101 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_73"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,122.255035 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,130.225159 13.495132)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_50"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,138.195267 7.710464)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_49"></use>
    <use xlink:href="#GLYPHcmr7_53" x="3.986190"></use>
  </g>
</svg></span>, where S is the scale factor in one dimension
and I is the size of the output image in the corresponding
dimension.  For real images, the parameter <i><span data-if="hdevelop" style="display:inline">'int_zooming'</span><span data-if="c" style="display:none">"int_zooming"</span><span data-if="cpp" style="display:none">"int_zooming"</span><span data-if="com" style="display:none">"int_zooming"</span><span data-if="dotnet" style="display:none">"int_zooming"</span><span data-if="python" style="display:none">"int_zooming"</span></i>
does not affect the accuracy, since the internal calculations are
always done using floating point arithmetic.
</p>
<p>The size of the target image is specified by the parameters
<a href="#Width"><i><code><span data-if="hdevelop" style="display:inline">Width</span><span data-if="c" style="display:none">Width</span><span data-if="cpp" style="display:none">Width</span><span data-if="com" style="display:none">Width</span><span data-if="dotnet" style="display:none">width</span><span data-if="python" style="display:none">width</span></code></i></a> and <a href="#Height"><i><code><span data-if="hdevelop" style="display:inline">Height</span><span data-if="c" style="display:none">Height</span><span data-if="cpp" style="display:none">Height</span><span data-if="com" style="display:none">Height</span><span data-if="dotnet" style="display:none">height</span><span data-if="python" style="display:none">height</span></code></i></a>.  Note that the image is always
clipped at the left and upper edge, i.e., all image parts that have
negative coordinates after the transformation are clipped. If the
affine transformation (in particular, the translation) is chosen
appropriately, a part of the image can be transformed as well as
cropped in one call.  This is useful, for example, when using the
variation model (see <a href="compare_variation_model.html"><code><span data-if="hdevelop" style="display:inline">compare_variation_model</span><span data-if="c" style="display:none">compare_variation_model</span><span data-if="cpp" style="display:none">CompareVariationModel</span><span data-if="com" style="display:none">CompareVariationModel</span><span data-if="dotnet" style="display:none">CompareVariationModel</span><span data-if="python" style="display:none">compare_variation_model</span></code></a>), because with
this mechanism only the parts of the image that should be examined,
are transformed.</p>
<h2 id="sec_attention">注意</h2>
<p>The region of the input image is ignored.
</p>
<p><code><span data-if="hdevelop" style="display:inline">affine_trans_image_size</span><span data-if="c" style="display:none">affine_trans_image_size</span><span data-if="cpp" style="display:none">AffineTransImageSize</span><span data-if="com" style="display:none">AffineTransImageSize</span><span data-if="dotnet" style="display:none">AffineTransImageSize</span><span data-if="python" style="display:none">affine_trans_image_size</span></code> does not use the HALCON standard
coordinate system (with the origin in the center of the upper left
pixel), but instead uses the same coordinate system as in
<a href="affine_trans_pixel.html"><code><span data-if="hdevelop" style="display:inline">affine_trans_pixel</span><span data-if="c" style="display:none">affine_trans_pixel</span><span data-if="cpp" style="display:none">AffineTransPixel</span><span data-if="com" style="display:none">AffineTransPixel</span><span data-if="dotnet" style="display:none">AffineTransPixel</span><span data-if="python" style="display:none">affine_trans_pixel</span></code></a>, i.e., the origin lies in the upper left
corner of the upper left pixel.  Therefore, applying
<code><span data-if="hdevelop" style="display:inline">affine_trans_image_size</span><span data-if="c" style="display:none">affine_trans_image_size</span><span data-if="cpp" style="display:none">AffineTransImageSize</span><span data-if="com" style="display:none">AffineTransImageSize</span><span data-if="dotnet" style="display:none">AffineTransImageSize</span><span data-if="python" style="display:none">affine_trans_image_size</span></code> corresponds to a chain of
transformations (see <a href="affine_trans_pixel.html"><code><span data-if="hdevelop" style="display:inline">affine_trans_pixel</span><span data-if="c" style="display:none">affine_trans_pixel</span><span data-if="cpp" style="display:none">AffineTransPixel</span><span data-if="com" style="display:none">AffineTransPixel</span><span data-if="dotnet" style="display:none">AffineTransPixel</span><span data-if="python" style="display:none">affine_trans_pixel</span></code></a>), which is applied
to each point of the image (input and output pixels as homogeneous
vectors).  As an effect, you might get unexpected results when
creating affine transformations based on coordinates that are
derived from the image, e.g., by operators like
<a href="area_center_gray.html"><code><span data-if="hdevelop" style="display:inline">area_center_gray</span><span data-if="c" style="display:none">area_center_gray</span><span data-if="cpp" style="display:none">AreaCenterGray</span><span data-if="com" style="display:none">AreaCenterGray</span><span data-if="dotnet" style="display:none">AreaCenterGray</span><span data-if="python" style="display:none">area_center_gray</span></code></a>. For example, if you use this operator to
calculate the center of gravity of a rotationally symmetric image
and then rotate the image around this point using
<a href="hom_mat2d_rotate.html"><code><span data-if="hdevelop" style="display:inline">hom_mat2d_rotate</span><span data-if="c" style="display:none">hom_mat2d_rotate</span><span data-if="cpp" style="display:none">HomMat2dRotate</span><span data-if="com" style="display:none">HomMat2dRotate</span><span data-if="dotnet" style="display:none">HomMat2dRotate</span><span data-if="python" style="display:none">hom_mat2d_rotate</span></code></a>, the resulting image will not lie on the
original one. In such a case, you can compensate this effect by
applying the following translations to <a href="#HomMat2D"><i><code><span data-if="hdevelop" style="display:inline">HomMat2D</span><span data-if="c" style="display:none">HomMat2D</span><span data-if="cpp" style="display:none">HomMat2D</span><span data-if="com" style="display:none">HomMat2D</span><span data-if="dotnet" style="display:none">homMat2D</span><span data-if="python" style="display:none">hom_mat_2d</span></code></i></a> before
using it in <code><span data-if="hdevelop" style="display:inline">affine_trans_image_size</span><span data-if="c" style="display:none">affine_trans_image_size</span><span data-if="cpp" style="display:none">AffineTransImageSize</span><span data-if="com" style="display:none">AffineTransImageSize</span><span data-if="dotnet" style="display:none">AffineTransImageSize</span><span data-if="python" style="display:none">affine_trans_image_size</span></code>:
</p>
<div style="text-align:center"><table style="width:90%;margin-left:auto;margin-right:auto" class="layout">
<col span="1" style="width:90%;">
<tr><td style="text-align:left">
<a href="hom_mat2d_translate.html"><code><span data-if="hdevelop" style="display:inline">hom_mat2d_translate(HomMat2D, 0.5, 0.5, HomMat2DTmp)</span><span data-if="c" style="display:none">hom_mat2d_translate(HomMat2D, 0.5, 0.5, HomMat2DTmp)</span><span data-if="cpp" style="display:none">HomMat2dTranslate(HomMat2D, 0.5, 0.5, HomMat2DTmp)</span><span data-if="com" style="display:none">HomMat2dTranslate(HomMat2D, 0.5, 0.5, HomMat2DTmp)</span><span data-if="dotnet" style="display:none">HomMat2dTranslate(HomMat2D, 0.5, 0.5, HomMat2DTmp)</span><span data-if="python" style="display:none">hom_mat2d_translate(HomMat2D, 0.5, 0.5, HomMat2DTmp)</span></code></a>
</td></tr>
<tr><td style="text-align:left">
<a href="hom_mat2d_translate_local.html"><code><span data-if="hdevelop" style="display:inline">hom_mat2d_translate_local(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted)</span><span data-if="c" style="display:none">hom_mat2d_translate_local(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted)</span><span data-if="cpp" style="display:none">HomMat2dTranslateLocal(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted)</span><span data-if="com" style="display:none">HomMat2dTranslateLocal(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted)</span><span data-if="dotnet" style="display:none">HomMat2dTranslateLocal(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted)</span><span data-if="python" style="display:none">hom_mat2d_translate_local(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted)</span></code></a>
</td></tr>
<tr><td style="text-align:left">
<code><span data-if="hdevelop" style="display:inline">affine_trans_image_size(Image, ImageAffineTrans, HomMat2DAdapted, 'constant', Width, Height)</span><span data-if="c" style="display:none">affine_trans_image_size(Image, ImageAffineTrans, HomMat2DAdapted, "constant", Width, Height)</span><span data-if="cpp" style="display:none">AffineTransImageSize(Image, ImageAffineTrans, HomMat2DAdapted, "constant", Width, Height)</span><span data-if="com" style="display:none">AffineTransImageSize(Image, ImageAffineTrans, HomMat2DAdapted, "constant", Width, Height)</span><span data-if="dotnet" style="display:none">AffineTransImageSize(Image, ImageAffineTrans, HomMat2DAdapted, "constant", Width, Height)</span><span data-if="python" style="display:none">affine_trans_image_size(Image, ImageAffineTrans, HomMat2DAdapted, "constant", Width, Height)</span></code>
</td></tr>
</table></div>

<p>For an explanation of the different 2D coordinate systems
used in HALCON, see the introduction of chapter
<a href="toc_transformations_2dtransformations.html">Transformations / 2D Transformations</a>.
</p>

<h2 id="sec_execution">运行信息</h2>
<ul>
    
      <li>支持OpenCL计算设备。</li>
    
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  
    <li>在元组级别自动并行化。</li>
    <li>在图像通道级别自动并行化。</li>
    <li>Automatically parallelized on internal data level.</li>
  
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Image" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></b> (input_object)  </span><span>(multichannel-)image(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject</span> (byte / int2 / uint2 / real)</span>
</div>
<p class="pardesc">Input image.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ImageAffineTrans" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ImageAffineTrans</span><span data-if="c" style="display:none">ImageAffineTrans</span><span data-if="cpp" style="display:none">ImageAffineTrans</span><span data-if="com" style="display:none">ImageAffineTrans</span><span data-if="dotnet" style="display:none">imageAffineTrans</span><span data-if="python" style="display:none">image_affine_trans</span></code></b> (output_object)  </span><span>(multichannel-)image(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject *</span> (byte / int2 / uint2 / real)</span>
</div>
<p class="pardesc">Transformed image.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="HomMat2D" class="parname"><b><code><span data-if="hdevelop" style="display:inline">HomMat2D</span><span data-if="c" style="display:none">HomMat2D</span><span data-if="cpp" style="display:none">HomMat2D</span><span data-if="com" style="display:none">HomMat2D</span><span data-if="dotnet" style="display:none">homMat2D</span><span data-if="python" style="display:none">hom_mat_2d</span></code></b> (input_control)  </span><span>hom_mat2d <code>→</code> <span data-if="dotnet" style="display:none"><a href="HHomMat2D.html">HHomMat2D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Input transformation matrix.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Interpolation" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Interpolation</span><span data-if="c" style="display:none">Interpolation</span><span data-if="cpp" style="display:none">Interpolation</span><span data-if="com" style="display:none">Interpolation</span><span data-if="dotnet" style="display:none">interpolation</span><span data-if="python" style="display:none">interpolation</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Type of interpolation.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'constant'</span>
    <span data-if="c" style="display:none">"constant"</span>
    <span data-if="cpp" style="display:none">"constant"</span>
    <span data-if="com" style="display:none">"constant"</span>
    <span data-if="dotnet" style="display:none">"constant"</span>
    <span data-if="python" style="display:none">"constant"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'bicubic'</span><span data-if="c" style="display:none">"bicubic"</span><span data-if="cpp" style="display:none">"bicubic"</span><span data-if="com" style="display:none">"bicubic"</span><span data-if="dotnet" style="display:none">"bicubic"</span><span data-if="python" style="display:none">"bicubic"</span>, <span data-if="hdevelop" style="display:inline">'bilinear'</span><span data-if="c" style="display:none">"bilinear"</span><span data-if="cpp" style="display:none">"bilinear"</span><span data-if="com" style="display:none">"bilinear"</span><span data-if="dotnet" style="display:none">"bilinear"</span><span data-if="python" style="display:none">"bilinear"</span>, <span data-if="hdevelop" style="display:inline">'constant'</span><span data-if="c" style="display:none">"constant"</span><span data-if="cpp" style="display:none">"constant"</span><span data-if="com" style="display:none">"constant"</span><span data-if="dotnet" style="display:none">"constant"</span><span data-if="python" style="display:none">"constant"</span>, <span data-if="hdevelop" style="display:inline">'nearest_neighbor'</span><span data-if="c" style="display:none">"nearest_neighbor"</span><span data-if="cpp" style="display:none">"nearest_neighbor"</span><span data-if="com" style="display:none">"nearest_neighbor"</span><span data-if="dotnet" style="display:none">"nearest_neighbor"</span><span data-if="python" style="display:none">"nearest_neighbor"</span>, <span data-if="hdevelop" style="display:inline">'weighted'</span><span data-if="c" style="display:none">"weighted"</span><span data-if="cpp" style="display:none">"weighted"</span><span data-if="com" style="display:none">"weighted"</span><span data-if="dotnet" style="display:none">"weighted"</span><span data-if="python" style="display:none">"weighted"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Width" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Width</span><span data-if="c" style="display:none">Width</span><span data-if="cpp" style="display:none">Width</span><span data-if="com" style="display:none">Width</span><span data-if="dotnet" style="display:none">width</span><span data-if="python" style="display:none">width</span></code></b> (input_control)  </span><span>extent.x <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Width of the output image.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>640</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>128, 160, 192, 256, 320, 384, 512, 640, 768</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Height" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Height</span><span data-if="c" style="display:none">Height</span><span data-if="cpp" style="display:none">Height</span><span data-if="com" style="display:none">Height</span><span data-if="dotnet" style="display:none">height</span><span data-if="python" style="display:none">height</span></code></b> (input_control)  </span><span>extent.y <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Height of the output image.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>480</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>120, 128, 144, 240, 256, 288, 480, 512, 576</p>
</div>
<h2 id="sec_result">结果</h2>
<p>If the matrix <a href="#HomMat2D"><i><code><span data-if="hdevelop" style="display:inline">HomMat2D</span><span data-if="c" style="display:none">HomMat2D</span><span data-if="cpp" style="display:none">HomMat2D</span><span data-if="com" style="display:none">HomMat2D</span><span data-if="dotnet" style="display:none">homMat2D</span><span data-if="python" style="display:none">hom_mat_2d</span></code></i></a> represents an affine transformation
(i.e., not a projective transformation),
<code><span data-if="hdevelop" style="display:inline">affine_trans_image_size</span><span data-if="c" style="display:none">affine_trans_image_size</span><span data-if="cpp" style="display:none">AffineTransImageSize</span><span data-if="com" style="display:none">AffineTransImageSize</span><span data-if="dotnet" style="display:none">AffineTransImageSize</span><span data-if="python" style="display:none">affine_trans_image_size</span></code> returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    .  If the input is empty
the behavior can be set via
<a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system(::'no_object_result',&lt;Result&gt;:)</span><span data-if="c" style="display:none">set_system("no_object_result",&lt;Result&gt;)</span><span data-if="cpp" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="com" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="dotnet" style="display:none">SetSystem("no_object_result",&lt;Result&gt;)</span><span data-if="python" style="display:none">set_system("no_object_result",&lt;Result&gt;)</span></code></a>.  If necessary,
an exception is raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="hom_mat2d_identity.html"><span data-if="hdevelop" style="display:inline">hom_mat2d_identity</span><span data-if="c" style="display:none">hom_mat2d_identity</span><span data-if="cpp" style="display:none">HomMat2dIdentity</span><span data-if="com" style="display:none">HomMat2dIdentity</span><span data-if="dotnet" style="display:none">HomMat2dIdentity</span><span data-if="python" style="display:none">hom_mat2d_identity</span></a></code>, 
<code><a href="hom_mat2d_translate.html"><span data-if="hdevelop" style="display:inline">hom_mat2d_translate</span><span data-if="c" style="display:none">hom_mat2d_translate</span><span data-if="cpp" style="display:none">HomMat2dTranslate</span><span data-if="com" style="display:none">HomMat2dTranslate</span><span data-if="dotnet" style="display:none">HomMat2dTranslate</span><span data-if="python" style="display:none">hom_mat2d_translate</span></a></code>, 
<code><a href="hom_mat2d_rotate.html"><span data-if="hdevelop" style="display:inline">hom_mat2d_rotate</span><span data-if="c" style="display:none">hom_mat2d_rotate</span><span data-if="cpp" style="display:none">HomMat2dRotate</span><span data-if="com" style="display:none">HomMat2dRotate</span><span data-if="dotnet" style="display:none">HomMat2dRotate</span><span data-if="python" style="display:none">hom_mat2d_rotate</span></a></code>, 
<code><a href="hom_mat2d_scale.html"><span data-if="hdevelop" style="display:inline">hom_mat2d_scale</span><span data-if="c" style="display:none">hom_mat2d_scale</span><span data-if="cpp" style="display:none">HomMat2dScale</span><span data-if="com" style="display:none">HomMat2dScale</span><span data-if="dotnet" style="display:none">HomMat2dScale</span><span data-if="python" style="display:none">hom_mat2d_scale</span></a></code>, 
<code><a href="hom_mat2d_reflect.html"><span data-if="hdevelop" style="display:inline">hom_mat2d_reflect</span><span data-if="c" style="display:none">hom_mat2d_reflect</span><span data-if="cpp" style="display:none">HomMat2dReflect</span><span data-if="com" style="display:none">HomMat2dReflect</span><span data-if="dotnet" style="display:none">HomMat2dReflect</span><span data-if="python" style="display:none">hom_mat2d_reflect</span></a></code>
</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="affine_trans_image.html"><span data-if="hdevelop" style="display:inline">affine_trans_image</span><span data-if="c" style="display:none">affine_trans_image</span><span data-if="cpp" style="display:none">AffineTransImage</span><span data-if="com" style="display:none">AffineTransImage</span><span data-if="dotnet" style="display:none">AffineTransImage</span><span data-if="python" style="display:none">affine_trans_image</span></a></code>, 
<code><a href="zoom_image_size.html"><span data-if="hdevelop" style="display:inline">zoom_image_size</span><span data-if="c" style="display:none">zoom_image_size</span><span data-if="cpp" style="display:none">ZoomImageSize</span><span data-if="com" style="display:none">ZoomImageSize</span><span data-if="dotnet" style="display:none">ZoomImageSize</span><span data-if="python" style="display:none">zoom_image_size</span></a></code>, 
<code><a href="zoom_image_factor.html"><span data-if="hdevelop" style="display:inline">zoom_image_factor</span><span data-if="c" style="display:none">zoom_image_factor</span><span data-if="cpp" style="display:none">ZoomImageFactor</span><span data-if="com" style="display:none">ZoomImageFactor</span><span data-if="dotnet" style="display:none">ZoomImageFactor</span><span data-if="python" style="display:none">zoom_image_factor</span></a></code>, 
<code><a href="mirror_image.html"><span data-if="hdevelop" style="display:inline">mirror_image</span><span data-if="c" style="display:none">mirror_image</span><span data-if="cpp" style="display:none">MirrorImage</span><span data-if="com" style="display:none">MirrorImage</span><span data-if="dotnet" style="display:none">MirrorImage</span><span data-if="python" style="display:none">mirror_image</span></a></code>, 
<code><a href="rotate_image.html"><span data-if="hdevelop" style="display:inline">rotate_image</span><span data-if="c" style="display:none">rotate_image</span><span data-if="cpp" style="display:none">RotateImage</span><span data-if="com" style="display:none">RotateImage</span><span data-if="dotnet" style="display:none">RotateImage</span><span data-if="python" style="display:none">rotate_image</span></a></code>, 
<code><a href="affine_trans_region.html"><span data-if="hdevelop" style="display:inline">affine_trans_region</span><span data-if="c" style="display:none">affine_trans_region</span><span data-if="cpp" style="display:none">AffineTransRegion</span><span data-if="com" style="display:none">AffineTransRegion</span><span data-if="dotnet" style="display:none">AffineTransRegion</span><span data-if="python" style="display:none">affine_trans_region</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="set_part_style.html"><span data-if="hdevelop" style="display:inline">set_part_style</span><span data-if="c" style="display:none">set_part_style</span><span data-if="cpp" style="display:none">SetPartStyle</span><span data-if="com" style="display:none">SetPartStyle</span><span data-if="dotnet" style="display:none">SetPartStyle</span><span data-if="python" style="display:none">set_part_style</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
